Exécution de requêtes SQL en PHP

Header :

Une fois que vous avez établi une connexion à votre base de données en utilisant PDO, vous pouvez exécuter des requêtes SQL pour interagir avec la base de données. PDO offre une interface orientée objet pour travailler avec différents types de bases de données tout en offrant une protection contre les injections SQL.


Body

Exécution d'une Requête SELECT

Pour exécuter une requête SELECT avec PDO, suivez ces étapes :

  1. Préparez la requête en utilisant la méthode prepare().

  2. Exécutez la requête en appelant la méthode execute().

  3. Récupérez les résultats à l'aide de la méthode fetchAll() ou fetch().

Voici un exemple :

try {
    // Connexion à la base de données
    $bdd = new PDO('mysql:host=hostname;dbname=nom_base_de_donnees', 'utilisateur', 'mot_de_passe');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Préparation de la requête
    $requete = $bdd->prepare("SELECT * FROM utilisateurs WHERE id = :id");

    // Liaison des valeurs aux paramètres de la requête
    $requete->bindParam(':id', $id, PDO::PARAM_INT);

    // Exécution de la requête
    $requete->execute();

    // Récupération des résultats
    $resultats = $requete->fetchAll(PDO::FETCH_ASSOC);

    // Affichage des résultats
    foreach ($resultats as $resultat) {
        echo $resultat['nom'];
    }
} catch (PDOException $e) {
    echo "Erreur : " . $e->getMessage();
}

Dans cet exemple :

  • :id est un paramètre de la requête, utilisé pour éviter les injections SQL.
  • $id est la valeur associée au paramètre :id.

Exécution de Requêtes INSERT, UPDATE et DELETE

Pour exécuter des requêtes INSERT, UPDATE et DELETE, utilisez les mêmes étapes que pour une requête SELECT, mais sans récupérer de résultats avec fetchAll() ou fetch().

Voici un exemple d'insertion de données :

try {
    // Connexion à la base de données
    $bdd = new PDO('mysql:host=hostname;dbname=nom_base_de_donnees', 'utilisateur', 'mot_de_passe');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Préparation de la requête d'insertion
    $requete = $bdd->prepare("INSERT INTO utilisateurs (nom, email) VALUES (:nom, :email)");

    // Liaison des valeurs aux paramètres de la requête
    $requete->bindParam(':nom', $nom);
    $requete->bindParam(':email', $email);

    // Assignation des valeurs aux variables
    $nom = "John Doe";
    $email = "john@example.com";

    // Exécution de la requête
    $requete->execute();

    echo "Données insérées avec succès";
} catch (PDOException $e) {
    echo "Erreur : " . $e->getMessage();
}

Conclusion

PDO offre une manière sécurisée et flexible d'exécuter des requêtes SQL en PHP. Assurez-vous de toujours utiliser les requêtes préparées avec des paramètres liés pour éviter les injections SQL et de gérer les erreurs de manière appropriée pour assurer un fonctionnement stable de votre application.